// 简化版资源加载器 - 专为微信小游戏环境设计
export default class ResourceLoader {
  constructor() {
    this.images = {};
    this.resourcesLoaded = false;
    this.totalResources = 0;
    this.loadedResources = 0;
    this.loadErrors = 0;
  }

  // 最简单的图片加载方法
  loadImage(name, path) {
    this.totalResources++;
    
    return new Promise((resolve) => {
      console.log(`尝试加载图片: ${name}, 路径: ${path}`);
      
      // 创建一个占位符对象，确保游戏可以继续运行
      this.createPlaceholder(name);
      
      // 尝试加载真实图片
      const img = wx.createImage();
      
      img.onload = () => {
        console.log(`图片 ${name} 加载成功: ${img.width}x${img.height}`);
        this.images[name] = img;
        this.loadedResources++;
        resolve(img);
      };
      
      img.onerror = (err) => {
        console.error(`图片 ${name} 加载失败:`, err);
        this.loadErrors++;
        // 已经有占位符，所以可以继续
        resolve(this.images[name]);
      };
      
      // 使用相对路径，不带前导斜杠
      try {
        img.src = path.replace(/^\//, '');
      } catch (error) {
        console.error(`设置图片 ${name} 的src时出错:`, error);
        this.loadErrors++;
        resolve(this.images[name]);
      }
    });
  }
  
  // 创建简单的占位符对象
  createPlaceholder(name) {
    this.images[name] = {
      width: 64,
      height: 64,
      isPlaceholder: true
    };
  }

  // 加载所有资源
  loadAll() {
    console.log('开始加载资源...');
    
    // 重置计数器
    this.loadedResources = 0;
    this.loadErrors = 0;
    
    // 资源列表
    const resources = [
      { name: 'rabbit', path: 'images/rabbit_sprite.png' },
      { name: 'carrot', path: 'images/carrot.png' },
      { name: 'crow', path: 'images/crow_sprite.png' }  // 添加乌鸦精灵图
    ];
    
    this.totalResources = resources.length;
    
    // 使用简单路径
    return Promise.all(
      resources.map(res => this.loadImage(res.name, res.path))
    )
    .then(() => {
      console.log('资源加载完成');
      this.resourcesLoaded = true;
      
      // 记录加载状态
      console.log(`资源加载状态: 成功=${this.loadedResources}, 失败=${this.loadErrors}, 总数=${this.totalResources}`);
      
      return this.loadErrors === 0;
    })
    .catch(error => {
      console.error('资源加载过程中发生错误:', error);
      return false;
    });
  }

  // 获取图片，如果不存在则返回占位符
  getImage(name) {
    if (!this.images[name]) {
      console.warn(`图片 ${name} 未找到，创建占位符`);
      this.createPlaceholder(name);
    }
    return this.images[name];
  }
  
  // 获取加载进度
  getProgress() {
    if (this.totalResources === 0) return 1.0; // 避免除以零
    return this.loadedResources / this.totalResources;
  }
  
  // 检查是否所有资源都已加载
  isAllLoaded() {
    return this.resourcesLoaded;
  }
} 